Search


📜 [專欄新文章] JOYSO — 混合式去中心化交易所
✍️ Hsieh ...

  • Share this:


📜 [專欄新文章] JOYSO — 混合式去中心化交易所
✍️ Hsieh Yung-chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium

JOYSO 為混合式去中心化交易所,用以太坊智能合約處理使用者帳號, 餘額, 以及撮合邏輯。中心化的撮和服務來撮合可以 match 的單子。先簡略寫一下JOYSO 的特性,後續再一一說明。

中心化撮合,鏈上結算

實時確認

近中心化交易所的使用者體驗

防止 front-running attack

Joyso 架構
流程:

使用者根據當前的掛單簿下單,若有可以撮合的單子,會由 matching server 撮合並送到區塊鏈上等待確認。而剩下的餘額會轉為相對應的買/賣單,回到掛單簿上。

2. 如果沒有可以撮合的單子,這個掛單會停留在掛單簿上,等待有緣人掛單撮合。

細節:

由於 JOYSO 可以確定 matching server 每筆撮合一定會上鏈。所以會實時更新掛單簿,可以讓使用者不用等待區塊確認直接做下一筆交易。

也因為由 matching server 負責撮合,所以不會像其他去中心交易所一樣會有多筆撮合同時搶單的狀況,同時也確保礦池不會影響交易順序,因為只會有一筆合法的撮合。

matching server 會跟據區塊鏈上智能合約以及當下 JOYSO 已撮合卻未上鏈的資訊,還有已經下單卻未被撮合的資訊來分析使用者下單是否合法。若合法則會接受該筆掛單。

除了把鏈上鏈下當下資訊整合算出來的合約狀態來接受掛單之外,我們還要確保在交易未確認前,智能合約的狀態沒有受到不可預期的更新。更細一點的說法,因為我們是交易所,我們要防止的是當智能合約在做交易時,其中一方使用者的餘額不足。所以我們要確保交易未確認前,智能合約的狀態沒有受到不可預期的餘額”減少”。所以我們在智能合約裡多做一層權限管控,只能由 JOYSO 認定的地址對合約發起這些交易。

即使只有 JOYSO 可以發起這些交易,智能合約仍會檢查 JOYSO 送到合約上的內容是否含有該使用者的簽章,會由這個方法來確認使用者簽過章接受由 JOYSO 幫忙撮單的結果。

除了驗證使用者簽章之外,智能合約還會檢查該單的狀態,不會亂扣使用者的餘額。比如,當一筆掛單為”賣 JOY 10 個,每個為 1 Ether”,那智能合約最多只會交易掉該使用者10個 JOY,並且每個 JOY 的金額不會“小於” 1 Ether。反之若掛單為“買 JOY 10 個,每個為 1 Ether”,那智能合約最多只會交易掉該使用者 10 個 Ether,並且每個 JOY 的收購金額不會“大於” 1 Ether。

使用者仍可直接對智能合約出金,智能合約若接收某使用者值貼提領的要求,會給 JOYSO 一定的時間完成在未確認列表裡與該使用者有關的交易。而 JOYSO 在接收到智能合約送出的 event 之後也會下假該使用者的掛單,以免出金後影響交易正確性。

Joyso 智能合約概觀
其他

從架構圖來看,前半部是跟中心化伺服器一樣,會需要標準的伺服器服務以向使用者提供好的體驗。後半為去中心化的部分,用智能合約確保使用者權益。惟在送上區塊鏈的部分,以太坊因為每個區塊有 gas 使用上限,且 15 秒才產生一個區塊。現在去中心化交易所已佔掉以太坊大部分的交易,若再更多的話,往後的吞吐量是不夠的。

相比於其他完全去中心化系統,JOYSO 伺服器以避免了錯勿的撮單會浪費 gas。除此之外,降低每筆撮合所需要的 gas,以及降低需要上鏈撮合的交易數量,是我們嘗試要增加 JOYSO 合約吞吐量的兩個方式。

為了要降低每筆撮合所需要的 gas 量,JOYSO 每筆撮合裡面會有多個掛單。只要符合使用者利益的可以同時撮合,相比於其他去中心化交易所每個撮合都是兩個掛單,當無法完全撮合會需要多餘的交易。另外,由於交易由 JOYSO 伺服器負責送出,我們可以自己計算event的通知以及內容,不用寫在區塊鏈上。最後是區塊鏈上空間的共用,我們盡可能壓縮智能合約結帳所需的資料。

安全性

Joyso 為中心化撮合,所以這邊要特別分析中心化撮合會對使用者的影響。

因為智能合約上的規則,JOYSO 無法在沒有取得使用者同意下,隨意亂動使用者的餘額。即使有使用者的簽章,智能合約也會檢查簽章內容,不會發生使用者沒允許的交易。

就像一般交易所一樣,所有的掛單以及未確認交易都會公布讓所有使用者知道。當有兩筆掛單可以撮合,大家都會看到,所以不用擔心 JOYSO 會不幫某些地址撮單。

JOYSO “可以” 屏蔽某些特定 address 的掛單,若是這個狀況,該 address 仍可以直接向智能合約出金。

JOYSO “可以” 做套利,但因為所有掛單布都會公開,且交易成功會實時回覆,如同中心化交易所一樣。除此之外,即使 JOYSO 成功套利,智能合約仍確保該使用者買賣單價不會劣於當初使用者所簽的價位。(註:套利是指當現在有一個掛賣單為1 Joy換1 Ether,若此時有使用者掛買單用1 Ether換0.5 Joy,JOYSO 注意到這個狀況而產生兩個單子,一為買單用1 Ether換1 Joy, 另一為賣單 0.5 Joy 換 1 Ether,如此 JOYSO 可以從中獲利 0.5 Joy)。

總結

JOYSO為混合式去中心化交易所,提供近乎中心化交易所的使用體驗。並由智能合約保障使用者資產,不會因為被駭或惡意倒閉而造成損失。

JOYSO — 混合式去中心化交易所 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.

👏 歡迎轉載分享鼓掌


Tags:

About author
not provided
We have regular meeting twice per month on discussing blockchain technology, smart contracts and DApps development! We would love to have you join us!
View all posts